feat(ui): Add tool level expansion settings.#563
Conversation
Introduce a central tool-call registry that owns renderer lookup, exact tool names, preset defaults, and the special Other tools entry for unknown tools. Tool and thinking expansion defaults now resolve through the shared preference model instead of hardcoded read/skill behavior. Rework Appearance interaction settings with Minimal, Balanced, Detailed, and Everything presets plus per-item customization rows that switch to Custom when edited. The layout adapts for narrow screens by stacking preset cards and expansion controls. Persist the new toolCallExpansionDefaults setting under the existing UI settings bucket while keeping legacy toolOutputExpansion and thinkingBlocksExpansion synchronized for command-palette compatibility. Validation: npm run typecheck --workspace @codenomad/ui.
|
I want you to perform the gatekeeper checks for latest PR state check for regressions |
|
Gatekeeper review for latest PR state. Assumption: the request is for a strict review only, not code changes. I did not modify the branch. Findings:
This is a real behavioral regression because the rest of the UI still treats
Impact: Required fix: keep Implementation-quality note: The new Validation: I attempted Gatekeeper verdict: request changes before merge. The PR should not ship while -- |
Move normal tool header title resolution onto the renderer that already comes from the central tool registry, eliminating the separate TITLE_RENDERERS map and its stale todoread entry. Keep the task renderer's legacy metadata.summary fallback lightweight by using state titles and generic input details instead of renderer-specific title lookup. This preserves old task summaries without reintroducing a second tool registry. Also remove remaining todoread branches from tool-call utilities because todoread is not an available tool. Validation: npm run typecheck --workspace @codenomad/ui.
|
Addressed the tool-title registry duplication review in follow-up commit f78307d.
Clarification: todoread is not a deprecated tool here; it is not an available tool in this registry/UI, so the stale references were removed rather than kept as a deprecated alias. Validation: npm run typecheck --workspace @codenomad/ui |
|
Now? |
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/27817555738 Artifacts expire in 7 days.
|
1 similar comment
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/27817555738 Artifacts expire in 7 days.
|
|
Re-review after follow-up commit Assumption: “Now?” means re-check the latest PR state as gatekeeper, not make code changes. Result: the previous blocking finding is resolved.
Remaining quality concern, not a blocker:
I would not block merge on that because loaded child-session tool calls now render through the real Validation: I re-ran Gatekeeper verdict: no blocking findings in the latest diff. The previous blocker is cleared. Merge risk is acceptable if CI/typecheck is green in the proper dependency environment. -- |
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/27818237675 Artifacts expire in 7 days.
|
…r streaming, session fixes and Winget automation (#568) ## Thanks for contributions - [@shantur](https://github.com/shantur): [#535](#535), [#556](#556), [#557](#557), [#562](#562), [#563](#563), [#564](#564), [#565](#565), [#567](#567) - [@pascalandr](https://github.com/pascalandr): [#533](#533), [#551](#551) - [@JDis03](https://github.com/JDis03): [#484](#484), [#536](#536) - [@aayurt](https://github.com/aayurt): [#552](#552) ## Highlights - **Compact mode is much better on mobile**: The message UI has been redesigned for compact layouts, with cleaner controls and a denser conversation view that works better on smaller screens. - **Tool output is easier to control**: New tool-level expansion settings let you choose how much tool-call detail you want to see, making busy sessions easier to scan. - **Streaming output feels steadier**: Bash output, tool output, and assistant responses now stay pinned more reliably while streaming, reducing jumps and missed updates. - **Project sessions are scoped more accurately**: Session lists now respect the active project more consistently, so switching projects is less likely to show unrelated sessions. - **Tab closing is more dependable**: Closing tabs has been tightened up to avoid cases where the wrong tab behavior could interrupt your workflow. ## What’s Improved - **Cleaner compact conversation layout**: Message blocks, message sections, tool calls, permissions, questions, todos, and task output have all been polished for a more readable compact experience. - **More useful tool-call presentation**: Tool calls now have a stronger registry-backed rendering path, clearer titles, improved status display, and better per-tool output handling. - **Better follow behavior near the bottom of sessions**: The session view now tracks bottom-follow intent more carefully, helping the app stay with new output when you expect it to. - **Smoother live session creation**: Session-created events from the live event stream are now handled directly, so new sessions appear more reliably without manual refreshes. - **Improved permission denial feedback**: Denied permissions now produce simpler, less noisy feedback in the conversation. ## Fixes - **More reliable autoscroll during long responses**: Hold-mode assistant autoscroll, message-part tool output autoscroll, and streaming bash output pinning were stabilized. - **Less duplicated streaming text**: SSE part deltas are throttled and buffered more carefully to prevent stale delta text from being duplicated in streamed messages. - **Better session list isolation**: Project session list requests are now scoped so sessions from one project do not bleed into another project’s list. - **More stable tab management**: A tab close bug was fixed to make multi-session navigation safer. - **Release pipeline reliability**: Winget release automation is now wired into the release workflow so Windows package updates can be published more consistently. ## Docs - **New contributor guide**: A `CONTRIBUTING.md` guide was added to help new contributors set up the project and understand the development workflow. - **Winget release docs updated**: Supporting documentation for Winget release automation was refreshed. ### Contributors - [@shantur](https://github.com/shantur) - [@pascalandr](https://github.com/pascalandr) - [@JDis03](https://github.com/JDis03) - [@aayurt](https://github.com/aayurt) **Full Changelog**: [v0.17.0...v0.18.0](v0.17.0...v0.18.0) ## Merged Pull Requests ### [@shantur](https://github.com/shantur) - PR [#535](#535) “fix(ui): simplify permission denial feedback” - PR [#556](#556) “fix(ui): keep streaming bash output pinned” - PR [#557](#557) “WIP: Compact mode message UI redesign” - PR [#562](#562) “fix(ui): handle session created SSE events” - PR [#563](#563) “feat(ui): Add tool level expansion settings.” - PR [#564](#564) “Improve compact mobile UI controls” - PR [#565](#565) “fix(ui): scope project session list requests” - PR [#567](#567) “fix(ui): keep message-part tool output auto-scroll synced” ### [@pascalandr](https://github.com/pascalandr) - PR [#533](#533) “fix: stabilize hold-mode assistant autoscroll” - PR [#551](#551) “fix: wire Winget automation into release pipeline” ### [@JDis03](https://github.com/JDis03) - PR [#484](#484) “docs: add CONTRIBUTING.md guide for new contributors” - PR [#536](#536) “fix(ui): throttle SSE part deltas and prevent stale delta text duplication” ### [@aayurt](https://github.com/aayurt) - PR [#552](#552) “Bugfix/tab close bug”
Summary
Validation